<?php
namespace slinks\core\dependencyInjectionExt\annotation;

use slinks\common\addendum\Annotation;

/** 
 * The Argument annotation serves many purposes. 
 * It only can contain one value or an array of values, this is either the value of the argument or another Annotation.
 * If this is an Array the same rules apply for all elements of the array. 
 * If it is another annotation it must be the Service annotation.  
 * 
 * It can be placed on a specific class when combined with a Service annotation to specify arguments to be passed to the constructor.
 * It can be nested on Inject to specify a value that is not a service. By default Inject expects all values to be a service reference.
 * It can be nested on PostConstruct annotations to define arguments to be passed to the post intialization method. 
 * However, this is not required since the values can be supplied directly.
 * 
 * Ex:
 * 
 * 
 * 
 * 
 * @Target({"nested","class"})
 **/
class Argument extends Annotation {}

